In general terms, cloud computing relates to the use of computing resources (hardware and/or software) that are delivered as a service over a network (typically the Internet).
Examples of services associated with applications hosted and executed by a cloud manager include, but are not limited to, infrastructure as a service (IaaS), platform as a service (PaaS), software as a service (SaaS), storage as a service (STaaS), security as a service (SECaaS), data as a service (DaaS), business process as a service (BPaaS), test environment as a service (TEaaS), desktop as a service (DaaS), and application programming interfaces (API) as a service (APIaaS).
Existing configuration management technologies for automating the deployment and installations of components in cloud computing environments comprise a script or a collection of scripts that can automatically install software or a software stack on virtual machines in the cloud computing environment. However, today the integration between the hosted application, the installed software stack and the cloud manager is quite static and highly integrated. Operations such as scaling may be performed by the cloud manager for simple applications without interaction with the hosted application itself and/or with the software platform providing the hosted applications to the cloud computing environment. Operations such as scaling can be performed if the existing installation of the hosted application in the cloud computing environment can simply be cloned, thus replicated for scaling up or if a clone is deleted for scaling down. In these cases only the load balancer of the cloud manager needs to be re-configured to provide load to all available installations.
But other scaling operations comprising adding more resources or removing resources from an application could be tedious. For example, as soon as states and data are involved, the hosted application or the software platform needs to actively support all changes to the hosted application, which changes are required during the scaling operation. For example, if a user profile database node is to be scaled up by adding further server nodes, the user profile database needs to be split, moving some of the data to the new host, while keeping some data on the existing host. The cloud manager cannot perform the operations involved to enable this split without specific information of this particular database and the data contained therein.
Hence, there is still a need for an improved re-configuration of an application hosted in a cloud computing environment.